public class OutClass {
    private int a = 10;//原地复制
    static int b = 20;
    int c = 30;
    public void method() {
        System.out.println("OutClass::method");
    }
    class IntClass {//实例内部类
        int d = 40;
        int c;//这里和外部类的成员变量同名。
        public void method2() {
            a = 100;
            b = 200;
            System.out.println(a+" "+b+" "+OutClass.this.c+" "+d);
            method();//调用外部类的方法
        }
    }
    public static void main1(String[] args) {
        OutClass c1=new OutClass();//闯将外部类对象c1;
        System.out.println(c1.a);
        System.out.println(c1.b);
        System.out.println(c1.c);//调用外部类的成员变量
        OutClass.IntClass c2=c1.new IntClass();//这里是先创建了外部类对象
                                               //这里是创建实例内部类对象c2;
        //如果木有先创建外部类对象，创建实例内部类对象c3;
        //OutClass.IntClass c3=new OutClass().new IntClass();
        c2.method2();//调用内部类的方法
    }
}
